const path = require('path')

module.exports = {

  publicPath: '/', // 基本路径,打包时加上.
  outputDir: process.env.outputDir, // 输出文件目录
  lintOnSave: false, // eslint-loader 是否在保存的时候检查

  // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
  // webpack配置
  chainWebpack: (config) => {
    config.resolve.symlinks(true)
    config.plugin("html").tap(args => {
      // 修复 Lazy loading routes Error
      args[0].chunksSortMode = "none";
      return args;
    });

  },
  configureWebpack: (config) => {
    if (process.env.VUE_APP_MODE === 'production') {
      // 为生产环境修改配置...
      config.mode = 'production'
    } else {
      // 为开发环境修改配置...
      config.mode = 'development'
    }
    Object.assign(config, {
      // 开发生产共同配置
      resolve: {
        alias: {
          '@': path.resolve(__dirname, './src'),
          '@cm': path.resolve(__dirname, './src/components_modules'),
          '@p': path.resolve(__dirname, './src/views'),
          '@u': path.resolve(__dirname, './src/utils'),
          '@a': path.resolve(__dirname, './src/api'),
          '@cb': path.resolve(__dirname, './src/components_basics')
        }, // 别名配置

      }
    })
  },
  productionSourceMap: false, // 生产环境是否生成 sourceMap 文件
  // css相关配置
  css: {
    // extract: true, // 是否使用css分离插件 ExtractTextPlugin
    sourceMap: false, // 开启 CSS source maps?
    loaderOptions: {
      css: {}, // 这里的选项会传递给 css-loader
      postcss: {
        plugins: [
          // 把px单位换算成rem单位
          // require('postcss-pxtorem')({
          //   rootValue: 75, // 换算的基数(设计图750的根字体为32)
          //   // selectorBlackList: [''], // 要忽略的选择器并保留为px。
          //   propList: ['*'], // 可以从px更改为rem的属性。
          //   minPixelValue: 2 // 设置要替换的最小像素值。
          // }),
        ]

      } 
    }, 
    loaderOptions: {
      less: {
        // `globalVars` 定义全局对象，可加入全局变量
      }
    },

    requireModuleExtension: true
  },
  parallel: require('os').cpus().length > 1, // 是否为 Babel 或 TypeScript 使用 thread-loader。该选项在系统的 CPU 有多于一个内核时自动启用，仅作用于生产构建。
  pwa: {
    iconPaths: {
      favicon32: 'favicon.ico',
      favicon16: 'favicon.ico',
      appleTouchIcon: 'favicon.ico',
      maskIcon: 'favicon.ico',
      msTileImage: 'favicon.ico'
    }
  }, // PWA 插件相关配置 see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
  // webpack-dev-server 相关配置
  devServer: {
    compress: true,
    contentBase: './',//项目基本访问目录
    disableHostCheck: true,
    // hotOnly: true, // 热更新
    // open: true, // 自动打开浏览器
    // host: "192.168.124.7",
    port: 8080, // 端口
    https: false, // 启用https
    overlay: {
      warnings: true,
      errors: true
    }, // 错误、警告在页面弹出
    // proxy: {
    // [process.env.VUE_APP_MODE]: {
    //     target: `http://cs.ep.eichong.com:2482/api`,
    //     changeOrigin: true,
    //     pathRewrite: {//看后台是否有，决定是否重写
    //         ["^" + process.env.VUE_APP_API_URL]: ""
    //     }
    // }
  },
  // 第三方插件配置
  pluginOptions: {},

}